import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

#加载数据集
goldstock_df = pd.read_csv("C:\\Users\\18318\\Desktop\\goldstock_v2_cleaned.csv")
stock_data_df = pd.read_csv("C:\\Users\\18318\\Desktop\\stock_data.csv")

#将'Date'列转换为 datetime 类型
goldstock_df['Date'] = pd.to_datetime(goldstock_df['Date'])

#创建 stock_data_df 的 'Date' 列
stock_data_df['Date'] = goldstock_df['Date'].iloc[:stock_data_df.shape[0]]

#确保两个数据集的时间戳是对齐的
aligned_df = pd.merge(stock_data_df, goldstock_df, on='Date', how='left')

#删除非数值型的列，例如 'Text'
aligned_df.drop('Text', axis=1, inplace=True)

#选择数值型的列进行相关性分析
numeric_cols = aligned_df.select_dtypes(include=['number']).columns
corr_matrix = aligned_df[numeric_cols].corr()

#可视化相关性矩阵
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, fmt=".2f", cmap='coolwarm')
plt.title('特征相关性矩阵')
plt.show()

import seaborn as sns
import matplotlib.pyplot as plt

#假设 corr_matrix 是您的相关性矩阵
plt.figure(figsize=(12, 10))  # 调整图形尺寸
sns.heatmap(corr_matrix, annot=True, fmt=".2f", cmap='coolwarm', annot_kws={"size": 10})  # 设置注释字体大小
plt.xticks(rotation=45)  # 旋转x轴标签，避免重叠
plt.yticks(rotation=0)  # 保持y轴标签水平
plt.tight_layout()  # 自动调整布局
plt.show()